字符串函数和操作符
最近更新时间: 2024-10-17 17:10:00
TDSQL-A PostgreSQL版 支持类型多样、功能丰富的字符串函数和操作符,在此列举部分常用的字符串操作符和函数。
操作符/函数 | 返回类型 | 描述 |
---|---|---|
string || string | text | 串接 |
char_length(string) or character_length(string) | int | 串中字符数 |
lower(string) | text | 将字符串转换为小写形式 |
overlay(string placing stringfrom int [for int]) | text | 替换子串 |
position(substring in string) | int | 定位指定子串 |
substring( string [from int] [for int]) | text | 提取子串 |
trim( [leading | trailing | both] [characters] fromstring) | text | 从 string 的开头、结尾、两端(默认是 both) 删除最长的只包含来自 characters 字符(默认是一个空格)的串 |
upper(string) | text | 将字符串转换成大写形式 |
ascii(string) | int | 参数第一个字符的 ASCII 代码。对于 UTF8 返回该字符的Unicode 代码点。对于其他多字节编码,该参数必须是一个 ASCII 字符 |
btrim(string text [, characterstext]) | text | 从 string 的开头或结尾删除最长的只包含 characters(默认是一个空格)的串 |
concat(str "any" [, str "any" [, ...] ]) | text | 串接所有参数的文本表示。NULL 参数被忽略 |
decode(string text, format text) | bytea | 从 string 中的文本表达解码二进制数据。format 的选项和 encode 中的一样 |
left(str text, n int) | text | 返回字符串中的前 n 个字符。当 n 为负时,将返回除了最后|n|个字符之外的所有字符 |
length(string) | int | string 中的字符数 |
lpad(string text, length int [, fill text]) | text | 将 string 通过前置字符 fill(默认是一个空格)填充到长度 length。如果 string 已经长于 length,则它被(从右边)截断 |
ltrim(string text [, characterstext]) | text | 从 string 的开头删除最长的只包含 characters(默认是一个空格)的串 |
repeat(string text, number int) | text | 重复 string 指定的 number 次 |
示例:
postgres=# SELECT 'T'||'dapg';
?column?
----------
Tdapg
(1 row)
postgres=# SELECT char_length('jose');
char_length
-------------
4
(1 row)
postgres=# SELECT overlay('Txxxxas' placing 'hom' from 2 for 4);
overlay
---------
Thomas
(1 row)
postgres=# SELECT position('om' in 'Thomas');
position
----------
3
(1 row)
postgres=# SELECT substring('Thomas' from 2 for 3);
substring
-----------
hom
(1 row)
postgres=# SELECT trim(both from 'yxTomxx', 'xyz');
btrim
-------
Tom
(1 row)
postgres=# SELECT ascii('x');
ascii
-------
120
(1 row)
postgres=# SELECT btrim('xyxtrimyyx', 'xyz');
btrim
-------
trim
(1 row)
postgres=# SELECT concat('abcde', 2, NULL, 22);
concat
----------
abcde222
(1 row)